# 多阶段构建 - 第一阶段：构建
FROM maven:3.8-openjdk-8-slim AS builder

# 设置工作目录
WORKDIR /app

# 复制pom.xml文件
COPY pom.xml .
COPY ruoyi-admin/pom.xml ./ruoyi-admin/
COPY ruoyi-common/pom.xml ./ruoyi-common/
COPY ruoyi-framework/pom.xml ./ruoyi-framework/
COPY ruoyi-system/pom.xml ./ruoyi-system/
COPY ruoyi-quartz/pom.xml ./ruoyi-quartz/
COPY ruoyi-generator/pom.xml ./ruoyi-generator/

# 复制源代码
COPY . .

# 构建应用
RUN mvn clean package -DskipTests

# 多阶段构建 - 第二阶段：运行
FROM openjdk:8-jre-slim

# 设置维护者信息
LABEL maintainer="gen-backend"

# 安装字体支持（用于图表等）
RUN apt-get update && apt-get install -y fontconfig && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /app

# 从构建阶段复制jar包
COPY --from=builder /app/ruoyi-admin/target/ruoyi-admin.jar app.jar

# 创建日志目录
RUN mkdir -p /app/logs

# 暴露端口
EXPOSE 8080

# 设置JVM参数（可以通过环境变量覆盖）
ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"

# 启动应用
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar app.jar"]

